#ifndef _COLOR_SPACE_RGBA_H_
#define _COLOR_SPACE_RGBA_H_

#include "./visual_define.h"

namespace Visual {

	namespace ColorSpace {

		enum CoordinateRGBA {
			R = 0,
			G = 1,
			B = 2,
			A = 3
		};

		inline string& operator += ( string &str, const CoordinateRGBA &obj ) {
			if( obj == R ) return str += "Red";
			if( obj == G ) return str += "Green";
			if( obj == B ) return str += "Blue";
			return str += "Alpha"; // A
		};

		inline string operator + ( const string &str, const CoordinateRGBA &obj ) {
			string result = str;
			return result += obj;
		};

		inline string operator + ( const CoordinateRGBA &obj, const string &str ) {
			return string("") + obj + str;
		};

		inline ostream& operator << ( ostream &out, const CoordinateRGBA &obj ) {
			return out << ( string("") + obj );
		};

	};

};

#endif // _COLOR_SPACE_RGBA_H_
